home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / x86 / include / asm / kgdb.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.7 KB  |  80 lines

  1. #ifndef _ASM_X86_KGDB_H
  2. #define _ASM_X86_KGDB_H
  3.  
  4. /*
  5.  * Copyright (C) 2001-2004 Amit S. Kale
  6.  * Copyright (C) 2008 Wind River Systems, Inc.
  7.  */
  8.  
  9. /*
  10.  * BUFMAX defines the maximum number of characters in inbound/outbound
  11.  * buffers at least NUMREGBYTES*2 are needed for register packets
  12.  * Longer buffer is needed to list all threads
  13.  */
  14. #define BUFMAX            1024
  15.  
  16. /*
  17.  *  Note that this register image is in a different order than
  18.  *  the register image that Linux produces at interrupt time.
  19.  *
  20.  *  Linux's register image is defined by struct pt_regs in ptrace.h.
  21.  *  Just why GDB uses a different order is a historical mystery.
  22.  */
  23. #ifdef CONFIG_X86_32
  24. enum regnames {
  25.     GDB_AX,            /* 0 */
  26.     GDB_CX,            /* 1 */
  27.     GDB_DX,            /* 2 */
  28.     GDB_BX,            /* 3 */
  29.     GDB_SP,            /* 4 */
  30.     GDB_BP,            /* 5 */
  31.     GDB_SI,            /* 6 */
  32.     GDB_DI,            /* 7 */
  33.     GDB_PC,            /* 8 also known as eip */
  34.     GDB_PS,            /* 9 also known as eflags */
  35.     GDB_CS,            /* 10 */
  36.     GDB_SS,            /* 11 */
  37.     GDB_DS,            /* 12 */
  38.     GDB_ES,            /* 13 */
  39.     GDB_FS,            /* 14 */
  40.     GDB_GS,            /* 15 */
  41. };
  42. #define NUMREGBYTES        ((GDB_GS+1)*4)
  43. #else /* ! CONFIG_X86_32 */
  44. enum regnames64 {
  45.     GDB_AX,            /* 0 */
  46.     GDB_BX,            /* 1 */
  47.     GDB_CX,            /* 2 */
  48.     GDB_DX,            /* 3 */
  49.     GDB_SI,            /* 4 */
  50.     GDB_DI,            /* 5 */
  51.     GDB_BP,            /* 6 */
  52.     GDB_SP,            /* 7 */
  53.     GDB_R8,            /* 8 */
  54.     GDB_R9,            /* 9 */
  55.     GDB_R10,        /* 10 */
  56.     GDB_R11,        /* 11 */
  57.     GDB_R12,        /* 12 */
  58.     GDB_R13,        /* 13 */
  59.     GDB_R14,        /* 14 */
  60.     GDB_R15,        /* 15 */
  61.     GDB_PC,            /* 16 */
  62. };
  63.  
  64. enum regnames32 {
  65.     GDB_PS = 34,
  66.     GDB_CS,
  67.     GDB_SS,
  68. };
  69. #define NUMREGBYTES        ((GDB_SS+1)*4)
  70. #endif /* CONFIG_X86_32 */
  71.  
  72. static inline void arch_kgdb_breakpoint(void)
  73. {
  74.     asm("   int $3");
  75. }
  76. #define BREAK_INSTR_SIZE    1
  77. #define CACHE_FLUSH_IS_SAFE    1
  78.  
  79. #endif /* _ASM_X86_KGDB_H */
  80.